package com.googlecode.gaal.data.api;

import java.util.Iterator;
import java.util.Set;

public interface SymbolTable<T> {

    public Set<T> alphabet();

    public int toInt(T token);

    public T toToken(int symbol);

    public int alphabetSize();

    public Iterator<T> iterator(final IntSequence sequence);

    public String toString(IntSequence sequence, String delimiter);

    public String toString(Iterator<IntSequence> iterator, String delimiter);
    
    public String toString(Multiset<IntSequence> sequenceSet, String delimiter);

    public boolean isSeparator(int symbol);

}
